/**
 * electron/main.js
 * 这是Electron应用的主入口文件，负责初始化应用和注册生命周期钩子
 */

// 在应用启动前禁用Content-Security-Policy警告
// 这不会影响应用的安全性，只是在开发环境中禁用警告提示
process.env.ELECTRON_DISABLE_SECURITY_WARNINGS = 'true';

// 导入ElectronEgg核心类，这是框架的主要类
const { ElectronEgg } = require('ee-core');
// 导入生命周期管理类，用于处理应用的各个生命周期事件
const { Lifecycle } = require('./preload/lifecycle');
// 导入预加载模块，用于在应用启动时执行一些初始化操作
const { preload } = require('./preload');
// 导入electron，用于访问process对象
const { app } = require('electron');

// 创建ElectronEgg应用实例
const eApp = new ElectronEgg();

// 注册生命周期钩子函数
const life = new Lifecycle();
// 注册ready事件钩子，当核心应用加载完成时触发
eApp.register("ready", life.ready);
// 注册electron-app-ready事件钩子，当Electron应用准备就绪时触发
eApp.register("electron-app-ready", life.electronAppReady);
// 注册window-ready事件钩子，当主窗口加载完成时触发
eApp.register("window-ready", life.windowReady);
// 注册before-close事件钩子，当应用关闭前触发
eApp.register("before-close", life.beforeClose);

// 注册预加载模块，应用启动时会执行preload函数
eApp.register("preload", preload);

// 启动应用
eApp.run();